PixelationCore.hlsl 841 B

123456789101112131415161718192021222324
  1. #ifndef FLAT_KIT_PIXELATION_INCLUDED
  2. #define FLAT_KIT_PIXELATION_INCLUDED
  3. TEXTURE2D_X (_BlitTexture);
  4. SAMPLER (sampler_BlitTexture);
  5. float4 SampleCameraColor(float2 uv)
  6. {
  7. return SAMPLE_TEXTURE2D_X(_BlitTexture, sampler_BlitTexture, UnityStereoTransformScreenSpaceTex(uv));
  8. }
  9. void Pixelation_float(float2 UV, out float4 Out)
  10. {
  11. float longerScreenSizePixelSize = _PixelSize;
  12. float aspectRatio = _ScreenParams.x / _ScreenParams.y;
  13. float2 pixelSize = aspectRatio > 1
  14. ? float2(longerScreenSizePixelSize, longerScreenSizePixelSize * aspectRatio)
  15. : float2(longerScreenSizePixelSize / aspectRatio, longerScreenSizePixelSize);
  16. float2 uv = UV / pixelSize;
  17. uv = floor(uv);
  18. uv *= pixelSize;
  19. Out = SampleCameraColor(uv);
  20. }
  21. #endif // FLAT_KIT_PIXELATION_INCLUDED